export { }

// 接口
// interface ObjState {
// 	// 必须属性
// 	name: string
// 	age: number
// 	//可选属性
// 	sex?: '男' | '女'
// 	// 只读属性
// 	readonly code: string
// 	// 其他属性
// 	[propsName: string]: any 
// }


// const o: ObjState = { name: '张三', age: 18, code: '1234567' }
// const o1: ObjState = { name: '李四', age: 20, sex: '男', code: '123456786543' }

// o.name = '呵呵'
// o.sex = '女'
// // o.code = '1231231231'
// o.qwe = 1231

// 类

// class Person {
// 	name: string
// 	age: number
// 	constructor(name: string, age: number) {
// 		this.name = name
// 		this.age = age
// 	}

// 	sayName() {
// 		console.log('我是' + this.name)
// 	}
// }


// 泛型

// function iden<T>(x: T): T {
// 	return x
// }

// iden<number>(1)
// iden<string>("123")
// iden<boolean>(true)
// interface O {

// 	name: string
// }

// iden<O>({ name: '张三' })




class GetMax<T> {
	findMaxValue(arr: number[]) {
		const max = Math.max(...arr);
		const maxIndex = arr.indexOf(max)
		return {
			value: max,
			index: maxIndex
		}
	}
}

const test1 = new GetMax()

// console.log(test1.findMaxValue([1, 2, 3, 5, 22, 7, 9, 9, 6, 5]))


function findLongestWord(str: string) {
	// "2qeqeqw werwew qweqweq qweqweq qweqweqw qweqweqq qweqwe qw eqweq"
	const arr = str.split(' ')
	// ["2qeqeqw, werwew, qweqweq, qweqweq, qweqweqw, qweqweqq, qweqwe, qw, eqweq"]
	const arrLen = arr.map(v => v.length)
	//  [7, 6, 7 .....]
	const o = test1.findMaxValue(arrLen)
	// { value: , index:   }
	return arr[o.index]
}


console.log(findLongestWord('2qeqeqw werwew qweqweq yyyyyyyyyyyy qweq1111111weqw qweqweqq qweqwe qw eqweq'))